package org.csu.mypetstorebackstage.service;

import org.csu.mypetstorebackstage.domain.Item;
import org.csu.mypetstorebackstage.persistence.ItemMapper;
import org.csu.mypetstorebackstage.persistence.ProductMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

@Service
public class ItemService {
    @Autowired
    private ItemMapper itemMapper;

    @Resource(name = "ProductMapper")
    private ProductMapper productMapper;

    public Item getItemById (String itemId)
    {
        return itemMapper.getItemById(itemId);
    }

    public List<Item> getItemAllByProduct(String productId)
    {
        return itemMapper.getItemAllByProduct(productId);
    }

    public List<Item> getItemAll()
    {
        return itemMapper.getItemAll();
    }

    public void editItem(Item item){ itemMapper.editItem(item); }

    public String getProudctIdByItemid(String itemId)
    {
        return itemMapper.getProudctIdByItemid(itemId);
    }
    public List<Item> getItemListByProduct(String productId)
    {
        return itemMapper.getItemListByProduct(productId);
    }
    public int getInventoryQuantity(String itemId)
    {
        return itemMapper.getInventoryQuantity(itemId);
    }
    public void updateInventoryQuantity(Map<String,Object> param)
    {
        itemMapper.updateInventoryQuantity(param);
    }

    //插入商品的时候 得先判断此item 是否存在表中  并且他的 productid 与 supplier均是另外两个表的外键  还应考虑left on
    public String insertItem(Item item)
    {

        if(productMapper.addItem(item)==true)
        {
            return "complete";
        }
        else
            return "Exist";

//        itemMapper.insertItem(item);
    }




    //这个是对应deleteItemListByItemIds方法  想通过List<Item>来获得list<String>Itemids
    public List<String>getItemIdsByItemList(List<Item>itemList)
    {
        return itemMapper.getItemIdsByItemList(itemList);
    }
    //在删除product时  顺便会吧所有item对应的productId 删除
    public void deleteItemListByItem(List<Item>item)
    {
        itemMapper.deleteItemListByItem(item);

    }

    public void deleteItemByItemId(String itemId)
    {
        itemMapper.deleteItemByItemId(itemId);
    }

}
